Expanded pointer focus for hypertext lnks

ABSTRACT

A computer system, program product and method utilize an input region defined for a hypertext link that is capable of receiving user input for the hypertext link outside of a display region thereof to perform a predetermined operation with the hypertext link. At least a portion of the input region is disposed outside of the display region of the hypertext link. As a result, when a user performs a specific action while a pointer is disposed within the input region of the hypertext link, the predetermined operation (e.g., activating the hypertext link) is performed. In addition, conflicts between multiple user interface controls (e.g., hypertext links) disposed proximate one another may be resolved by defining a secondary operation for a second user interface control that may be activated in response to user input that occurs when a pointer is disposed within an input region defined for a first user interface control.

FIELD OF THE INVENTION

[0001] The invention is generally related to computers and computersoftware. More specifically, the invention is generally related to amanner of interfacing with user interface controls displayed on acomputer display.

BACKGROUND OF THE INVENTION

[0002] Hypertext linking has become an extremely popular manner ofinterfacing with a computer due to its intuitiveness, simplicity andefficiency. With hypertext linking, a user is permitted to navigatebetween documents and/or between different locations in the samedocument simply by moving a pointer over a hypertext link and selectingthe hypertext link by depressing a key or button (a process known as“pointing and clicking”).

[0003] Hypertext links often include text embedded within a text stringthat is highlighted to identify the text as a hypertext link. As such, auser is often able to navigate by directly selecting the text from aportion of a text string. For example, a text string such as “the winnerof the 1973 Kentucky Derby was Secretariat” might have a hypertext linkdefined for the word “Secretariat”, such that a user might be able toview a separate document with Secretariat's career racing statisticssimply by pointing and clicking on the word “Secretariat”.

[0004] A principal use of hypertext linking is in retrieving informationfrom the Internet, and specifically, a portion of the Internet known asthe World Wide Web (“the Web”). Moreover, due to the ever-increasingpopularity of the Web, many private networks, as well as otherapplications local to a user's workstation, now use hypertext linking toaccess and navigate between documents. Documents are typically formattedusing a standard language known as the Hypertext Markup Language (HTML),and are viewed using a computer software application known as a web orhypertext browser. Browsers typically display all or a portion of aparticular document in one or more graphical windows.

[0005] One problem associated with hypertext linking is that to date auser has been required to position a pointer directly over a hypertextlink in order to activate the hypertext link. Typically, activation of ahypertext link requires that the pointer be located within a displayregion of a hypertext link—that is, within the extent of a displayrepresentation of the hypertext link on a computer display.

[0006] However, in a number of circumstances, it can be difficult for auser to accurately and efficiently position a pointer over the displayregion of a hypertext link. These circumstances may include, forexample, if the pointer speed is set relatively high, if a user's handis somewhat shaky, if the display region of a hypertext link isrelatively small, and/or if there are several hypertext links disposedin close proximity to one another (as in a list).

[0007] Also, some user interface devices may have relatively poorgranularity, and may be difficult to position accurately. For example,on many notebook computers, trackball, Accupoint or touch pad userinterface devices are often used, which many users find to be moredifficult to control than a mouse. In addition, many PC/TV's— that is,integrated televisions and home computers—use a remote control toprovide wireless control over a pointer. Remote controls have been foundto be particularly imprecise compared to a mouse.

[0008] When a user is unable to efficiently and accurately selecthypertext links, the user's overall productivity decreases while theuser's level of frustration increases. Moreover, when a useraccidentally selects an unintended hypertext link (e.g., when twohypertext links are positioned in close proximity with one another),additional time and productivity may be lost in navigating back to theoriginal document and selecting the originally intended hypertext link.

[0009] Therefore, a significant need continues to exist for a manner ofsimplifying the selection of user interface controls, and in particular,the selection of hypertext links, with a user-actuated pointer.

SUMMARY OF THE INVENTION

[0010] The invention addresses these and other problems associated withthe prior art by providing a computer system, program product and methodin which an input region is defined for a hypertext link that is capableof receiving user input for the hypertext link outside of a displayregion thereof to perform a predetermined operation with the hypertextlink. At least a portion of the input region is disposed outside of thedisplay region of the hypertext link. As a result, when a user performsa specific action while a pointer is disposed within the input region ofthe hypertext link, the predetermined operation (e.g., activating thehypertext link) is performed. Put another way, a user is able to performa predetermined operation such as selecting a hypertext link even whenthe pointer is disposed close to, but not directly over, the hypertextlink. Less accuracy is required when positioning a pointer, whichminimizes errors and increases productivity.

[0011] In addition, with some embodiments of the invention, conflictsbetween multiple user interface controls (e.g., hypertext links)disposed proximate one another may be resolved in a unique manner tofacilitate user actuation of either control. In particular, a secondaryoperation may be defined for a second user interface control that may beactivated in response to user input that occurs when a pointer isdisposed within an input region defined for a first user interfacecontrol.

[0012] Without limiting the invention to a particular implementation, itmay be desirable in some embodiments to actuate the primary andsecondary operations using different buttons on a user interface device,as well as to highlight the first and second user interface controlswith distinct visual representations to indicate to a user the availableoperations that may be performed. Moreover, it may be desirable tovisually link the display representations of the hypertext links withthe pointer to further assist the user in performing the operations,e.g., through color coordinating the display representations withbuttons on a graphical pointer representation.

[0013] These and other advantages and features, which characterize theinvention, are set forth in the claims annexed hereto and forming afurther part hereof. However, for a better understanding of theinvention, and of the advantages and objectives attained through itsuse, reference should be made to the drawings, and to the accompanyingdescriptive matter, in which there is described various embodiments ofthe invention.

BRIEF DESCRIPTION OF THE DRAWING

[0014]FIG. 1 is a block diagram of a computer system consistent with theinvention.

[0015]FIG. 2 is a block diagram of an exemplary software environment forthe computer system of FIG. 1.

[0016]FIG. 3 is a block diagram of a hypertext link consistent with theinvention.

[0017]FIG. 4 is a flowchart illustrating the program flow for the mainroutine of the browser of FIG. 2.

[0018]FIG. 5 is a flowchart illustrating the program flow of the updateinput regions routine of FIG. 4.

[0019]FIG. 6 is a block diagram of an input region list data structureconsistent with the invention.

[0020]FIG. 7 is a flowchart illustrating the program flow of the handlepointer movement routine of FIG. 4.

[0021]FIG. 8 is a flowchart illustrating the program flow of the handleleft button routine of FIG. 4.

[0022]FIG. 9 is a flowchart illustrating the program flow of the handleright button routine of FIG. 4.

[0023]FIG. 10 is a block diagram illustrating an exemplary hypertextdocument displayed in a window on the computer system of FIG. 1.

[0024]FIG. 11 is a simplified block diagram of the hypertext document ofFIG. 10, with a pointer located within a display region of a hypertextlink.

[0025]FIG. 12 is a simplified block diagram of the hypertext document ofFIG. 10, with a pointer located within an input region of a singlehypertext link.

[0026]FIG. 13 is a simplified block diagram of the hypertext document ofFIG. 10, with a pointer located within the input regions of multiplehypertext links.

DETAILED DESCRIPTION Hardware Environment

[0027] Turning to the Drawing, wherein like numbers denote like partsthroughout the several views, a computer system 10 consistent with theinvention is illustrated in FIG. 1. Computer system 10 is illustrated asa networked computer system including one or more client computersystems 12, 14 and 20 (e.g., desktop or personal computers,workstations, etc.) coupled to server system 16 through a network 18.Network 18 may represent practically any type of networkedinterconnection, including but not limited to local-area, wide-area,wireless, and public networks (e.g., the Internet). Moreover, any numberof computers and other devices may be networked through network 18,e.g., multiple servers. Furthermore, it should be appreciated that theprinciples of the invention may be utilized as well by stand-alonecomputers and associated devices consistent with the invention.

[0028] Computer system 20, which may be similar to computer systems 12,14, may include one or more processors such as a microprocessor 21; anumber of peripheral components such as a computer display 22 (e.g., aCRT, an LCD display or other display device); storage devices 23 such ashard, floppy, and/or CD-ROM disk drives; a printer 24; and various userinput devices (e.g., a mouse 26 and keyboard 27), among others. Computersystem 20 operates under the control of an operating system and executesvarious computer software applications, programs, objects, modules, etc.(e.g., a browser 30) as is well known in the art. Moreover, variousapplications, programs, objects, modules, etc. may also execute on oneor more processors in server 16 or other computer systems 12, 14, e.g.,in a distributed computing environment.

[0029] In general, the routines executed to implement the illustratedembodiments of the invention, whether implemented as part of anoperating system or a specific application, program, object, module orsequence of instructions will be referred to herein as “computerprograms” or “programs”. The computer programs typically compriseinstructions which, when read and executed by one or more processors inthe devices or systems in networked computer system 10, cause thosedevices or systems to perform the steps necessary to execute steps orelements embodying the various aspects of the invention. Moreover, whilethe invention has and hereinafter will be described in the context offully functioning computer systems, those skilled in the art willappreciate that the various embodiments of the invention are capable ofbeing distributed as a program product in a variety of forms, and thatthe invention applies equally regardless of the particular type ofsignal bearing media used to actually carry out the distribution.Examples of signal bearing media include but are not limited torecordable type media such as volatile and non-volatile memory devices,floppy disks, hard disk drives, CD-ROM's, DVD's, and transmission typemedia such as digital and analog communications links.

[0030] Those skilled in the art will recognize that the exemplaryenvironment illustrated in FIG. 1 is not intended to limit the presentinvention. Indeed, those skilled in the art will recognize that otheralternative hardware environments may be used without departing from thescope of the present invention.

Software Environment

[0031]FIG. 2 illustrates one suitable software environment for computersystem 20 consistent with the invention. A processor 21 is illustratedas coupled to a memory 28 as well as to several inputs and outputs. Forexample, user input is received by processor 21, e.g., by mouse 26 andkeyboard 27, among others. Other suitable user interface devices mayinclude, for example, a remote control, a trackball, a joystick, a touchpad, and an Accupoint input device, among others. Additional informationmay be passed between computer system 20 and other computer systems innetworked computer system 10 via network 18. Additional information maybe stored to and/or received from mass storage 23. Processor 21 alsooutputs display data to display 22. It should be appreciated thatcomputer system 20 includes suitable interfaces between processor 21 andeach of components 18, 22, 23, 26, 27 and 28 as is well known in theart.

[0032] An exemplary embodiment of the invention is implemented within ahypertext (or web) browser application 30, e.g., similar to the InternetExplorer browser from Microsoft Corporation and the Navigator browserfrom Netscape Communications. It should be appreciated, however, thatthe invention may also be implemented in other applications that utilizeuser interface controls, and specifically hypertext links, as well asdirectly within the operating system or other support software of acomputer system consistent with the invention.

[0033] Browser 30 is illustrated in FIG. 2 as being resident in memory28. However, it should be appreciated that various components of theapplication may be stored on network 18 or mass storage 23 prior tostart-up, and in addition, that various components may be resident atdifferent times in any of memory 28, mass storage 23, network 18, orwithin registers and/or caches in processor 21.

[0034] It should also be appreciated that other software environmentsmay be utilized in the alternative.

Pointer Focus for Hypertext Links

[0035] The exemplary embodiments of the invention generally operate bydefining input regions around user interface controls such as hypertextlinks that are configured to receive user input for the associatedcontrols whenever a user-actuated pointer is disposed within suchregions. An input region typically includes a first portion thatoverlaps a display region of a hypertext link, and a second portion thatextends beyond the display region. In the alternative, the input regionmay be defined wholly outside of the display region of the hypertextlink.

[0036] Typically, the display region of a hypertext link includes theextent of the actual text and/or image data forming the displayrepresentation of the hypertext link. While the invention is not limitedto a specific hypertext link format, one particularly useful applicationof the invention is in conjunction with hypertext links defined in anHTML document such as an Internet document. Principally three types ofhypertext links are defined by the HTML protocol. A first type ofhypertext link is defined by a text string including a plurality ofalphanumeric characters that are typically highlighted (e.g., throughunderlining and a unique color) to set the characters off fromsurrounding text, whereby the display region thereof is the boundary ofthe display representation of the text string. A second type ofhypertext link is defined by a graphical image having a border thatdefines the display region thereof. Yet another type of hypertext linkis defined by a predetermined display region specified within an imagemap. In this latter type of hypertext link, multiple links may bedefined in a common graphical image by defining coordinates, andoptionally, a shape (e.g., a rectangle, a circle or a polygon) withinthe graphical image. With this latter type, therefore, the displayregion is coextensive with the boundary defined in the definition of theimage map.

[0037] The display region of a hypertext link may also include a degreeof whitespace surrounding such data, e.g., for alphanumeric hypertextlinks, blank characters disposed between multiple words in a hypertextlink, as well as the whitespace within a character box defined for eachcharacter in a hypertext link. For example, it should be appreciatedthat a line of text in a hypertext browser has a line height, with eachcharacter in that line being disposed within a rectangular box havingthe same height as that of the line, and with a width that isproportional or fixed depending upon the display font used to representthe link. For image-type hypertext links, as well as hypertext linksdefined in an image map, similar whitespace may be defined by the authorof a document by defining the border of the active area of the hypertextlink accordingly.

[0038] As shown in FIG. 3, for example, character boxes 42 and 44 areillustrated respectively for the letters “W” and “e” of a hypertext link40, with the boundaries of these boxes 42, 44 defining the displayregion 46 of the display representation of the hypertext link. Thecharacters are disposed in a proportional font, and as such, the widthof each character box is variable while the height thereof is constant.For a fixed font, the width of each character box is typically constantfor a given font size. The display region 46 may therefore be seen toinclude the small amount of whitespace within each character box 42, 44.

[0039] An input region 48 is defined around hypertext link 40, with afirst portion 48 a overlapping display region 46, and a second portion48 b extending beyond display region 46. In other embodiments, inputregion 48 may be considered to exclude the area overlapped by displayregion 46.

[0040] The size and shape of input region 48 may vary for differentimplementations. For example, input region 48 is illustrated as arectangle that extends in each direction beyond display region 46 by adistance x. In other implementations, it may be desirable to utilizeother shapes, e.g., circles, ovals, squares, etc. for the input region.Moreover, while input region 48 is illustrated as centered on thedisplay region, the input region may be offset from the display region,and may instead extend predominantly in a given direction in thealternative. The input region may also only partially overlap a displayregion, and may not extend beyond a display region in all directions.Furthermore, the input region may be predefined, or may be customized bya user if desired. Other alternative configurations of an input regionwill be apparent to one of ordinary skill in the art.

[0041]FIG. 4 illustrates an exemplary program flow for a main routine 50executed by browser application 30 of FIG. 2. Routine 50 is shownimplemented in an event-driven representation. However, otherprogramming models, e.g., procedural, may be used in the alternative.Routine 50 generally operates in an endless loop that waits for eventsat block 52, checks for certain specified events, processes thoseevents, and returns to block 52 to wait for additional events.

[0042] A number of events generally related to the use of a pointerfocus consistent with the invention are illustrated at blocks 53, 54, 56and 58. Additional events conventionally handled by a browserapplication, but which are not relevant to an understanding of theinvention, are handled in a conventional manner in block 60.

[0043] One event handled by browser 30 is a refresh display event, whichis detected at block 53. This event may be initiated in any number ofcircumstances, e.g., whenever the browser wishes to generate a newdocument that has been retrieved via a hypertext link, when a user hasscrolled up or down in a document, or in response to a specific commandto refresh the display, among other operations.

[0044] The refresh display event is handled in block 62 by refreshingthe display, a process that is well known in the art. Generally,refreshing the display encompasses rendering the source HTML informationfrom a document into a display representation generated via the controltags embedded in the HTML document.

[0045] Once the display is refreshed, an update regions routine 70(discussed below) is called to build a list of input regions for thevarious hypertext links defined in the currently-displayed HTMLdocument.

[0046] Another event handled by browser 30 is a pointer movement event,which is detected at block 54 and handled by handle pointer movementroutine 100. In addition, user depression of left and right buttons on auser interface device such as a mouse are respectively detected atblocks 56 and 58, and are respectively handled via handle left buttonand handle right button routines 130, 150 (also discussed below). Asdiscussed above, other events that are not relevant to an understandingof the invention are handled in block 60.

[0047]FIG. 5 illustrates update regions routine 70 in greater detail.Routine 70 begins in block 72 by clearing an input region datastructure, e.g., by deallocating the space reserved for such astructure, or other manners known in the art.

[0048] Any number of data structures may be utilized to store inputregion information for a plurality of hypertext links defined within ahypertext document. For example, FIG. 6 illustrates a linked list datastructure 90 including a plurality of records 92, each of which isassigned to a particular hypertext link defined in a hypertext document.Each record 92 includes a field 94 within which is stored the extents ofthe input region. The extents may be defined, for example, bycoordinates, by shape and/or by a combination thereof. Moreover, theextents may be defined in absolute coordinates or in relativecoordinates (e.g., relative to the coordinates of the display region ofa particular hypertext link definition). As one example, each inputregion may be defined to extend a predetermined distance in eachdirection from the display region of a hypertext link.

[0049] Each record 92 also includes a field 96 including a pointer tothe associated link for the record. This permits quick access to thelink to be activated in response to a user operation performed while thepointer is disposed within an input region.

[0050] Each record 92 also includes a field 98 including a pointer tothe next input region within the linked list data structure 90. The endof the linked list is determined by a record 92 having a NULL pointerstored in field 98.

[0051] It should be appreciated that other data structures may be usedconsistent with the invention.

[0052] Returning to FIG. 5, once the input region list is cleared,control passes to block 74 to initiate a WHILE loop that is executeduntil each hypertext link within the current document has beenprocessed. As long as additional unprocessed links exist, control passesto block 76 to retrieve the next hypertext link. Next, in block 78 a newinput region record 92 is created, e.g., by instantiating a new inputregion object. Next, in block 80 a pointer to the current link beingprocessed is stored in field 96 of the new input region record 92. Inthe alternative, the actual URL or other address information may bestored directly in the field.

[0053] Next, in block 92, the extents of the input region are determinedand stored in field 94 of the new input region record 92. Determinationof the input region may be performed in a number of manners based uponthe shape and relative or absolute coordinates utilized to define aninput region. For example, for an alphanumeric hypertext link, onesuitable manner of defining the input region may be to determine theleftmost, rightmost, topmost and bottommost coordinates of the displayregion of the hypertext link, and then adjust these values by apredetermined amount in each direction to define an input region thatextends in all directions a predetermined amount beyond the displayregion (e.g., as shown in FIG. 3).

[0054] Once the input region extents are stored in record 92, the newrecord is added to the input region data structure 90 in block 84,typically by locating the last record in the list and setting the nextinput region field 98 thereof to point to the new record. Uponcompletion of block 84, control returns to block 74 to processadditional links in the document until all such links have beenprocessed, whereby routine 70 is then terminated.

[0055]FIG. 7 illustrates handle pointer routine 100 in greater detail.Routine 100 operates by applying suitable highlighting to hypertextlinks whenever a pointer is disposed with the input and/or displayregions thereof. In addition, coordinated highlighting of a pointer mayalso be implemented to facilitate a user's recognition of the useractions that are enabled at any given time based upon the location ofthe pointer. It should be appreciated, however, that highlighting of ahypertext links and/or a pointer may be omitted in certain embodiments.

[0056] Routine 100 begins in block 102 by determining whether thepointer is disposed in the display region of any link. If so, nospecialized processing of the pointer movement event need occur, andthus, control passes to block 114 to handle normal pointer movement. Forexample, it may be desirable to modify the display representation of thepointer when the pointer is disposed over the display region of a link,e.g., by displaying a graphical representation of hand as is found withmany conventional browsers. In the alternative, block 102 may beomitted, whereby placement of the pointer in either the display or inputregion of a hypertext link is handled in the same manner.

[0057] If the pointer is not disposed within a link display region,control passes to block 104 to determine whether the pointer is disposedin any input regions. This may be performed, for example, by searchingthrough the input region linked list data structure to find each inputregion having an extent that overlaps the current location of thepointer. If not, control passes directly to block 114 to handle normalpointer movement. If, however, the pointer is disposed over any inputregion, control passes to block 106 to determine whether the pointer isdisposed over multiple input regions.

[0058] As mentioned above, it may be desirable in certain applicationsto provide coordinated highlighting of a pointer and a hypertext linkwhen the pointer is disposed within the input region of the hypertextlink so that a user can recognize that a given hypertext link may beactivated in response to depression of a button on a user interfacedevice when the pointer is disposed within the input region. In someapplications, it may be sufficient to simply highlight the hypertextlink whenever the pointer is disposed within the input region thereof.In other embodiments, it may be desirable to also highlight the pointerin a fashion which provides a visual link between the hypertext link andthe pointer.

[0059] One manner of providing a visual link between a pointer and ahypertext link is to utilize a display representation of a pointer thatmimics a user interface device such as a mouse, with the displayrepresentation of the pointer in the hypertext link coordinated in sucha manner that the user can recognize that depression of a specificbutton on the user interface device will activate the hypertext link.

[0060] As shown, for example, by block 108, which is called in responseto the pointer being disposed over a single input region, the pointermay be updated to display a mouse icon having left and right buttons,with the left button highlighted, e.g., through a specific colorrepresentation, or in other manners which will be apparent to one ofordinary skill in the art. It should be appreciated that other graphicalrepresentations may be used in the alternative.

[0061] Next, in block 110, data from the input region that is overlappedby the pointer is retrieved. Then, in block 112, the associated link forthe input region is highlighted to match the highlighting of the leftbutton of the mouse icon used to represent the pointer. For example, thelink may be highlighted with a common color with the left button of themouse icon so that the user may recognize that depression of the leftbutton will actuate the highlighted hypertext link. Upon completion ofblock 112, control passes to block 114 to handle any additional pointermovement processing that is required, in a manner well known in the art.Routine 100 is then complete.

[0062] Returning to block 106, if it is determined that the pointer isdisposed over multiple input regions, control is passed to block 116 toupdate the pointer to show a mouse icon having both buttons highlighted,indicating that both primary and secondary operations may be performedwith respect to a pair of hypertext links. The left and right buttonsmay be highlighted in different colors or with other visually distinctrepresentations to distinguish the buttons, as well as their associatedlinks, from one another.

[0063] Next, in block 118, the first two input regions over which thepointer is disposed are retrieved. In many instances, only two inputregions will be overlapped, and thus, the first two input regions aresimply the two overlapped regions for the given position of the pointer.If more than two regions are overlapped by the pointer, a conflictresolution mechanism typically must be utilized to select two regionsfrom the multiple input regions. One manner of resolving conflict is toselect the two regions that the pointer is mostly in (i.e., where thepointer location is closer to the centers of the regions). In thealternative, the first two input regions may be assigned based upon ahierarchy defined for each input region (e.g., by assigning each regionto a different layer). Other manners of resolving such conflicts may beutilized in the alternative.

[0064] Once the two input regions are determined, block 120 is executedto highlight the associated link for the leftmost input region to matchthe highlighting of the left button of the mouse icon for the pointer.In addition, the associated link for the rightmost input region isassigned to match the highlighting for the right button displayed on themouse icon representation of the pointer. This indicates to the userthat depression of the left button will actuate the leftmost hypertextlink, while depression of the right button will perform a similaroperation for the rightmost link. Upon completion of block 120, controlpasses to block 114 to handle any additional normal pointer movementoperations, whereby routine 100 is then complete.

[0065] Various modifications may be made to routine 100 consistent withthe invention. For example, rather than requiring the pointer to bedisposed over multiple input regions, a secondary input region may bedefined even when the pointer is disposed only over a single inputregion, whereby the secondary input region will be visually linked withthe right mouse button displayed in the pointer representation. Forexample, it may be desirable to select the closest input region otherthan that over which the pointer is disposed as the secondary inputregion. In the alternative, the last (most recent) input region overwhich the pointer was disposed may be assigned as the secondary inputregion.

[0066] Other manners of visually linking the pointer to the hypertextlinks may also be used in the alternative. For example, other than usingcoordinating colors, other font attributes, such as font size, fonttype, font style, etc., may be utilized to highlight a link and/orpointer. Moreover, other graphical representations than a mouse may beutilized for a pointer to visually link the pointer with the hypertextlinks. Moreover, as mentioned above, it may desirable to only highlighta hypertext link and omit any visual link with the pointer.

[0067]FIG. 8 illustrates handle left button routine 130 in greaterdetail. It should be appreciated that the designation of buttons on auser input device as “left” and “right” buttons is merely one possibleassignment of operations for a given device, and that other buttons anduser-actuated controls may be used to perform predetermined operationsconsistent with the invention (e.g., keys on a keyboard). “Left” and“right” buttons may also be considered to be “primary” and “secondary”buttons, since some operating systems permit users to switch thefunctions of left and right buttons to accommodate left-handedoperation. Also, some mouse user input devices include more than twobuttons, so additional operations may be assigned to such additionalbuttons in a similar manner to that described herein.

[0068] Routine 130 begins at block 132 by determining whether thepointer is disposed over the display region of any hypertext link. Ifso, control passes directly to block 146 to process the link in a mannerknown in the art. Typically, this encompasses actuating the hypertextlink and navigating to the new document and/or position in a document asspecified by the definition of the hypertext link. In the alternative,block 132 may be omitted to provide the same functionality regardless ofwhether a pointer is within the display or input region of a hypertextlink.

[0069] If the pointer is not disposed within the display region of ahypertext link, control passes to block 134 to determine whether thepointer is disposed over any input regions defined for the hypertextlinks within a document, an operation that is performed in the samemanner as described above for block 104 of FIG. 7. If the pointer is notdisposed over any input regions, control passes to block 136 to handleother button events in a manner known in the art. For example, thebutton may have been depressed over another object in the browser, e.g.,a scroll bar, a tool bar button, a menu, etc., whereby conventionalprocessing of these other events is handled.

[0070] Returning to block 134, if the pointer is disposed over any inputregions, control passes to block 138 to determine whether the pointer isdisposed over multiple input regions. If not, control passes to block140 to retrieve the link associated with the overlapped input region.The link is retrieve by accessing the record for the input region andobtaining therefrom the associated hypertext link. Control then passesto block 146 to process the link, typically by actuating the link andnavigating to the document and/or location specified thereby. Routine130 is then complete.

[0071] Returning to block 138, if it is determined that the pointer isdisposed over multiple input regions, the first two input regionsoverlapped by the pointer are retrieved in block 142, in a similarmanner to block 118 of FIG. 7. Next, the link associated with theleftmost input region is retrieved in block 144. The leftmost inputregion is typically determined by locating the input region having theleftmost extent among the overlapped input regions on the computerdisplay. In the alternative, the left button may be assigned to aparticular input region based upon other criteria, e.g., whether thelink was the most recently overlapped, or whether the link has a higherpriority than the other hypertext links on a document. Once the linkassociated with the leftmost input region is retrieved, control passesto block 146 to process the link as described above, whereby routine 130is then complete.

[0072] Handle right button routine 150 is illustrated in greater detailin FIG. 9. Routine 150 implements a secondary function that permits apredetermined operation to be performed on a secondary hypertext linkwhen the pointer is disposed within the input region of a givenhypertext link. Typically, but not always, the secondary function isselection, or activation, of the secondary hypertext link. Moreover, thesecondary function is enabled in response to a predetermined condition,which may be any number of conditions, including that the pointer isalso disposed within the input region of the secondary hypertext link,that the pointer was most recently in the input region of the secondaryhypertext link (excluding the primary hypertext link), that the pointeris closest to the input region of the secondary hypertext link(excluding the primary hypertext link), among others.

[0073] Routine 150 begins in block 152 by determining whether thepointer is disposed over any input regions, in a manner similar to thatdescribed above for routines 100 and 130. If the pointer is not disposedover any input regions, control passes directly to block 156 to handlethe right button depression event in a manner known in the art. If,however, the pointer is disposed over an input region, control passes toblock 154 to determine whether the pointer is disposed over multipleinput regions. If not, control also passes to block 156 to handle thebutton event in a conventional manner. For example, it may be desirablewhen the pointer overlaps only a single input region to open a pop-upmenu associated with the hypertext link associated with the single inputregion, which performs an operation similar to a right button depressionoccurring while a pointer is disposed over a display region of ahypertext link in a conventional browser.

[0074] If the pointer is disposed over multiple input regions, controlis then passed to block 158 to retrieve the first two input regions inthe same manner as described above with respect to block 118 of FIG. 7.Next, block 160 retrieves the link associated with the rightmost inputregion. The rightmost input region is typically determined by findingthe input region having the rightmost extent. In the alternative, therightmost input region may be defined as the input region for asecondary hypertext link relative to a primary link. For example, asecondary hypertext link may be defined as the next to last hypertextlink over which the pointer was disposed, or the next to closesthypertext link to the current position of the pointer, among otheralternatives.

[0075] Once the link associated with the rightmost input region isretrieved, control passes to block 162 to process the link, typically byactuating the link and navigating to the document and/or locationspecified thereby. Upon completion of block 162, routine 150 is thencomplete.

[0076] As an illustrative example of the operation of browser 30, adisplay representation 200, having displayed therein a hypertextdocument 202, is presented in FIG. 10. A pointer 205 is shown disposedwithin display representation 200, and hypertext document 202 isillustrated with three hypertext links 210, 220 and 230.

[0077] As shown in FIG. 11, for example, each hypertext link 210, 220,230 may have defined therefor an associated display region 212, 222, 232and input region 214, 224, 234. With a movement of pointer 205 to withina display region 212 of hypertext link 210, the program flow of blocks102 and 114 is executed in routine 100, whereby the displayrepresentation of the pointer is updated to display a graphicalrepresentation of a hand, and the display representation of hypertextlink 210 is highlighted, all in a manner which is well known in the art.

[0078] Next, as shown in FIG. 12, if pointer 205 is moved such that itpoints to a location within input region 214 of hypertext link 210,routine 100 follows the program flow through blocks 102, 104, 106, 108,110, 112 and 114 of routine 100 to (1) highlight the displayrepresentation of hypertext link 210, and (2) update the pointer 205 todisplay a graphical representation of a mouse with a left button(illustrated by darkened portion 206) highlighted in a correspondingfashion with the display representation of hypertext link 210. Giventhat the pointer is disposed within a single input region, no specialhighlighting is provided for the right mouse button, represented byportion 208. It should therefore be appreciated that the depression ofthe left mouse button when the pointer is disposed at this position willactuate hypertext link 210 (e.g., through the program flow of blocks132, 134, 138, 140 and 146 of routine 130).

[0079]FIG. 13 illustrates movement of pointer 205 to a position withinboth input regions 224, 234 of hypertext links 220, 230. In thisposition, routine 100 follows the program flow of blocks 102, 104, 106,116, 118, 120 and 114, resulting in the display representation ofhypertext link 230 being highlighted in a coordinating fashion with leftbutton portion 206 of pointer 205, and with the display representationof hypertext link 220 being highlighted in a coordinating fashion withthe right button portion 208 of pointer 205.

[0080] Depression of the left mouse button at this position results inroutine 130 following the program flow of blocks 132, 134, 138, 142, 144and 146 to actuate hypertext link 230. Similarly, depression of theright mouse button in this position results in a call to routine 150,whereby the program flow of blocks 152, 154, 158, 160 and 162 isfollowed to actuate hypertext link 220.

[0081] Various modifications may be made to the above-describedembodiments without departing from the spirit and scope of theinvention. For example, operations other than actuating a hypertext linkmay be performed in response to user input received while a pointer isdisposed within an input region, e.g., opening a pop-up menu, amongothers. In addition, various aspects of the invention may be utilized inconjunction with user interface controls other than hypertext links,e.g., push buttons, pop-up buttons, radio buttons, edit boxes, comboboxes, list boxes, counters, checkboxes, and other graphical userinterface (GUI) controls known in the art. In particular, the ability toprovide secondary operations for additional user interface controls whena pointer is disposed within the input region of one control may providesignificant productivity gains, particularly when multiple userinterface controls are closely packed together in a particular area of acomputer display.

[0082] Moreover, it should be appreciated that other user interfacedevices, including various numbers and combinations of buttons and thelike, may be used to initiate predetermined operations consistent withthe invention. Furthermore, the boundary of an input region may or maynot be displayed on the computer display.

[0083] Other modifications will be apparent to one of ordinary skill inthe art. Therefore, the invention lies solely in the claims hereinafterappended.

What is claimed is:
 1. A method of receiving user input with a computersystem, the method comprising: (a) displaying a display representationof a hypertext link on a computer display, the display representationincluding a display region defined by the extent of the displayrepresentation; and (b) performing a predetermined operation with thehypertext link in response to user input received while a pointer islocated in an input region for the hypertext link, wherein at least aportion of the input region is disposed outside of the display region.2. The method of claim 1 , wherein performing the predeterminedoperation includes activating the hypertext link.
 3. The method of claim2 , wherein the display representation includes a plurality ofalphanumeric characters, and wherein the display region includes theextent of the plurality of alphanumeric characters.
 4. The method ofclaim 2 , wherein the display representation includes a graphical image,and wherein the display region includes the extent of the graphicalimage.
 5. The method of claim 1 , further comprising updating thelocation of the pointer in response to user input received from a userinterface device, and wherein performing the predetermined operation isresponsive to depressing a button on the user interface device.
 6. Themethod of claim 5 , wherein the user interface device is selected fromthe group consisting of a mouse, a trackball, a joystick, a touch pad,and an Accupoint input device.
 7. The method of claim 1 , wherein aportion of the input region fully overlaps the display region.
 8. Themethod of claim 1 , wherein the input region fully circumscribes thedisplay region.
 9. The method of claim 1 , further comprisinghighlighting the display representation when the pointer is locatedwithin the input region.
 10. The method of claim 9 , whereinhighlighting the display representation includes modifying a displaycolor of the display representation.
 11. The method of claim 1 , furthercomprising performing a second predetermined operation with a secondhypertext link in response to user input, wherein the second hypertextlink includes a second display representation displayed on the computerdisplay.
 12. The method of claim 11 , further comprising performing thesecond predetermined operation in response to user input received whilethe pointer is located in the first input region.
 13. The method ofclaim 12 , wherein performing the first predetermined operation isresponsive to depression of a first button on a user interface device,and wherein performing the second predetermined operation is responsiveto depression of a second button on the user interface device.
 14. Themethod of claim 12 , further comprising selectively enabling performanceof the second predetermined operation while the pointer is located inthe first input region only under a predetermined condition.
 15. Themethod of claim 14 , wherein the predetermined condition includes thepointer being located within the second input region.
 16. The method ofclaim 14 , further comprising displaying a third display representationof a third hypertext link on the computer display, wherein thepredetermined condition includes the second display representation beingcloser to the location of the pointer than the third displayrepresentation.
 17. The method of claim 14 , further comprisingdisplaying a third display representation of a third hypertext link onthe computer display, wherein the predetermined condition includes thepointer being located within the second input region more recently thana third input region defined for the third hypertext link.
 18. Themethod of claim 14 , further comprising selectively highlighting thesecond display representation whenever the predetermined condition ismet.
 19. The method of claim 18 , further comprising selectivelyhighlighting the first and second display representations with visuallydistinct representations from one another when the pointer is disposedwithin the first input region.
 20. The method of claim 18 , furthercomprising visually linking first and second portions of a displayrepresentation of the pointer to the first and second displayrepresentations, respectively, when the first and second displayrepresentations are highlighted.
 21. The method of claim 20 , whereinselectively highlighting the first and second display representationsincludes displaying the first and second display representations infirst and second colors, respectively, and wherein visually linkingincludes displaying the first color in the first portion and the secondcolor in the second portion.
 22. A method of receiving user input with acomputer system, comprising: (a) respectively displaying first andsecond display representations of first and second user interfacecontrols on a computer display, the first display representationincluding a first display region defined by the extent of the firstdisplay representation, and the second display representation includinga second display region defined by the extent of the second displayrepresentation; (b) performing a first predetermined operation with thefirst user interface control in response to first user input receivedwhile a pointer is located in a first input region of the first userinterface control, wherein at least a portion of the input region isdisposed outside of the display region; and (c) performing a secondpredetermined operation with the second user interface control inresponse to second user input received while the pointer is located inthe first input region of the first user interface control.
 23. Themethod of claim 22 , wherein the second user interface control includesa second input region, at least a portion of which is disposed outsideof the second display region, the method further comprising selectivelyenabling performance of the second predetermined operation while thepointer is located in the first input region only under a predeterminedcondition.
 24. The method of claim 23 , further comprising selectivelyhighlighting the second display representation whenever thepredetermined condition is met.
 25. The method of claim 24 , furthercomprising selectively highlighting the first and second displayrepresentations with visually distinct representations from one anotherwhen the pointer is disposed within the first input region.
 26. Themethod of claim 25 , further comprising visually linking first andsecond portions of a display representation of the pointer to the firstand second display representations, respectively, when the first andsecond display representations are highlighted.
 27. A computer system,comprising: (a) a computer display; and (b) a processor, coupled to thecomputer display, the processor configured to display a displayrepresentation of a hypertext link on the computer display, the displayrepresentation including a display region defined by the extent of thedisplay representation; and to perform a predetermined operation withthe hypertext link in response to user input received while a pointer islocated in an input region for the hypertext link, wherein at least aportion of the input region is disposed outside of the display region.28. The computer system of claim 27 , wherein the processor isconfigured to active the hypertext link in response to user inputreceived while the pointer is located in the input region for thehypertext link.
 29. The computer system of claim 27 , further comprisinga user interface device including a button configured to provide userinput to the processor, wherein the processor is further configured toupdate the location of the pointer in response to user input receivedfrom the user interface device, and to perform the predeterminedoperation in response to depression of the button on the user interfacedevice.
 30. The computer system of claim 27 , wherein a portion of theinput region fully overlaps the display region.
 31. The computer systemof claim 27 , wherein the input region fully circumscribes the displayregion.
 32. The computer system of claim 27 , wherein the processor isfurther configured to highlight the display representation when thepointer is located within the input region.
 33. The computer system ofclaim 27 , wherein the processor is further configured to perform asecond predetermined operation with a second hypertext link in responseto user input, wherein the second hypertext link includes a seconddisplay representation displayed on the computer display.
 34. Thecomputer system of claim 33 , wherein the processor is furtherconfigured to perform the second predetermined operation in response touser input received while the pointer is located in the first inputregion.
 35. The computer system of claim 33 , wherein the processor isfurther configured to selectively enable performance of the secondpredetermined operation while the pointer is located in the first inputregion only under a predetermined condition.
 36. The computer system ofclaim 35 , wherein the predetermined condition includes the pointerbeing located within the second input region.
 37. The computer system ofclaim 35 , wherein the processor is further configured to display athird display representation of a third hypertext link on the computerdisplay, wherein the predetermined condition includes the second displayrepresentation being closer to the location of the pointer than thethird display representation.
 38. The computer system of claim 35 ,wherein the processor is further configured to display a third displayrepresentation of a third hypertext link on the computer display,wherein the predetermined condition includes the pointer being locatedwithin the second input region more recently than a third input regiondefined for the third hypertext link.
 39. The computer system of claim35 , wherein the processor is further configured to selectivelyhighlight the first and second display representations with visuallydistinct representations from one another when the pointer is disposedwithin the first input region and the predetermined condition is met.40. The computer system of claim 39 , wherein the processor is furtherconfigured to visually link first and second portions of a displayrepresentation of the pointer to the first and second displayrepresentations, respectively, when the first and second displayrepresentations are highlighted.
 41. A program product, comprising: (a)a program configured to perform a method of receiving user input with acomputer system, the method comprising: (1) displaying a displayrepresentation of a hypertext link on a computer display, the displayrepresentation including a display region defined by the extent of thedisplay representation; and (2) performing a predetermined operationwith the hypertext link in response to user input received while apointer is located in an input region for the hypertext link, wherein atleast a portion of the input region is disposed outside of the displayregion; and (b) a signal bearing media bearing the program.
 42. Theprogram product of claim 41 , wherein the signal bearing media istransmission type media.
 43. The program product of claim 41 , whereinthe signal bearing media is recordable media.